package downpacket

import "gitee.com/yanwc/ebike-xiaoan-device/internal/field"

type InnerParam struct {
	FreqNorm                   *int     `json:"freq_norm"`                  // 正常模式下的上报周期，单位[秒]默认 600
	FreqMove                   *int     `json:"freq_move"`                  // 运动状态下的上报周期，单位[秒]默认 5
	IsAutoLockOn               *int     `json:"isAutoLockOn"`               // 自动落锁功能开关 1:打开 0:关闭
	AutoLockPeriod             *int     `json:"autoLockPeriod"`             // 自动落锁周期 单位[秒] 范围[300~3600] 默认600
	AudioRatio                 *float32 `json:"audioRatio"`                 // 语音音量系数，范围[0.1~1.0] 默认 1.0
	IsNightVoiceOn             *int     `json:"isNightVoiceOn"`             // 夜间语音功能是否打开 1:打开 0:关闭
	IsTBeaconEnable            *int     `json:"isTBeaconEnable"`            // 蓝牙道钉还车使能：禁能 0，使能 1
	TBeaconThresholdCompensate *int     `json:"TBeaconthresholdCompensate"` // 道钉阈值补偿值[dBm] 范围:-128~127
	IsTurnOverEnable           *int     `json:"isTurnOverEnable"`           // 倾倒检测使能：1:使能 0:失能
	TurnOverAngle              *int     `json:"turnOverAngle"`              // 倾倒报警角度范围：0-90°
	BeaconRssi                 *int     `json:"beaconRssi"`                 // 蓝牙道钉判断阈值，范围[20~128]
}

func NewQueryInnerParamReq(sn field.SerialNumber, req InnerParam) *Req[InnerParam] {
	return &Req[InnerParam]{
		CmdWord: QueryInnerParamCommandWord,
		MsgNo:   sn,
		Param:   req,
	}
}

func NewSetInnerParamReq(sn field.SerialNumber, req InnerParam) *Req[InnerParam] {
	return &Req[InnerParam]{
		CmdWord: SetInnerParamCommandWord,
		MsgNo:   sn,
		Param:   req,
	}
}
